package com.aspose.cells.b.a;

public final class zb {
   private static final byte[] a = new byte[255];
   private static final char[] b = new char[64];

   protected static boolean a(char var0) {
      return var0 == ' ' || var0 == '\r' || var0 == '\n' || var0 == '\t';
   }

   protected static boolean b(char var0) {
      return var0 == '=';
   }

   protected static boolean c(char var0) {
      return a[var0] != -1;
   }

   public static byte[] a(String var0) {
      if (var0 == null) {
         return null;
      } else {
         char[] var1 = var0.toCharArray();
         int var2 = a(var1);
         if (var2 % 4 != 0) {
            return null;
         } else {
            int var3 = var2 / 4;
            if (var3 == 0) {
               return new byte[0];
            } else {
               Object var4 = null;
               boolean var5 = false;
               boolean var6 = false;
               boolean var7 = false;
               boolean var8 = false;
               boolean var9 = false;
               boolean var10 = false;
               boolean var11 = false;
               boolean var12 = false;
               boolean var13 = false;
               boolean var14 = false;
               int var15 = 0;
               int var16 = 0;
               int var17 = 0;

               byte[] var19;
               byte var20;
               byte var21;
               byte var22;
               byte var23;
               char var24;
               char var25;
               char var26;
               char var27;
               for(var19 = new byte[var3 * 3]; var15 < var3 - 1; ++var15) {
                  if (!c(var24 = var1[var17++]) || !c(var25 = var1[var17++]) || !c(var26 = var1[var17++]) || !c(var27 = var1[var17++])) {
                     return null;
                  }

                  var20 = a[var24];
                  var21 = a[var25];
                  var22 = a[var26];
                  var23 = a[var27];
                  var19[var16++] = (byte)(var20 << 2 | var21 >> 4);
                  var19[var16++] = (byte)((var21 & 15) << 4 | var22 >> 2 & 15);
                  var19[var16++] = (byte)(var22 << 6 | var23);
               }

               if (c(var24 = var1[var17++]) && c(var25 = var1[var17++])) {
                  var20 = a[var24];
                  var21 = a[var25];
                  var26 = var1[var17++];
                  var27 = var1[var17++];
                  if (c(var26) && c(var27)) {
                     var22 = a[var26];
                     var23 = a[var27];
                     var19[var16++] = (byte)(var20 << 2 | var21 >> 4);
                     var19[var16++] = (byte)((var21 & 15) << 4 | var22 >> 2 & 15);
                     var19[var16++] = (byte)(var22 << 6 | var23);
                     return var19;
                  } else {
                     byte[] var18;
                     if (b(var26) && b(var27)) {
                        if ((var21 & 15) != 0) {
                           return null;
                        } else {
                           var18 = new byte[var15 * 3 + 1];
                           System.arraycopy(var19, 0, var18, 0, var15 * 3);
                           var18[var16] = (byte)(var20 << 2 | var21 >> 4);
                           return var18;
                        }
                     } else if (!b(var26) && b(var27)) {
                        var22 = a[var26];
                        if ((var22 & 3) != 0) {
                           return null;
                        } else {
                           var18 = new byte[var15 * 3 + 2];
                           System.arraycopy(var19, 0, var18, 0, var15 * 3);
                           var18[var16++] = (byte)(var20 << 2 | var21 >> 4);
                           var18[var16] = (byte)((var21 & 15) << 4 | var22 >> 2 & 15);
                           return var18;
                        }
                     } else {
                        return null;
                     }
                  }
               } else {
                  return null;
               }
            }
         }
      }
   }

   protected static int a(char[] var0) {
      if (var0 == null) {
         return 0;
      } else {
         int var1 = 0;
         int var2 = var0.length;

         for(int var3 = 0; var3 < var2; ++var3) {
            if (!a(var0[var3])) {
               var0[var1++] = var0[var3];
            }
         }

         return var1;
      }
   }

   static {
      int var0;
      for(var0 = 0; var0 < 255; ++var0) {
         a[var0] = -1;
      }

      for(var0 = 90; var0 >= 65; --var0) {
         a[var0] = (byte)(var0 - 65);
      }

      for(var0 = 122; var0 >= 97; --var0) {
         a[var0] = (byte)(var0 - 97 + 26);
      }

      for(var0 = 57; var0 >= 48; --var0) {
         a[var0] = (byte)(var0 - 48 + 52);
      }

      a[43] = 62;
      a[47] = 63;

      for(var0 = 0; var0 <= 25; ++var0) {
         b[var0] = (char)(65 + var0);
      }

      var0 = 26;

      int var1;
      for(var1 = 0; var0 <= 51; ++var1) {
         b[var0] = (char)(97 + var1);
         ++var0;
      }

      var0 = 52;

      for(var1 = 0; var0 <= 61; ++var1) {
         b[var0] = (char)(48 + var1);
         ++var0;
      }

      b[62] = '+';
      b[63] = '/';
   }
}
